let mongoose = require('../config/dbConfig');
let Role = require('./Role');
let Auth = require('./Auth');

// Schema是数据库集合的模型骨架
// 定义了集合中的字段的名称和类型以及默认值等信息


// NodeJS中的基本数据类型都属于 Schema.Type
// 另外Mongoose还定义了自己的类型
// 基本属性类型有:
// 字符串(String)
// 日期型(Date)
// 数值型(Number)
// 布尔型(Boolean)
// null
// 数组([])
// 内嵌文档
const UserSchema = new mongoose.Schema({
    username: { // 用户名
        type: String,
        required: true
    },
    password: { // 密码 
        type: String,
        required: true
    },
    name: { // 昵称
        type: String,
        default: ''
    },
    created: { // 注册账号时间
        type: Date,
        default: Date.now
    },
    updated: { // 文章最后更新时间
        type: Date,
        default: Date.now
    },
    gender: { // 性别
        type: Number,
        default: -1
    },
    role: { // 角色
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Role',// 0 普通用户 // 1 管理员
        default: '5ec73bc0c514dc322467cd63'
    },
    avatar: { // 头像
        type: String,
        default: ''
    },
    status: { // 状态
        type: String,
        default: 0
    }
});
// Model是由通过Schema构造而成 除了具有Schema定义的数据库骨架以外，
// 还可以操作数据库 如何通过Schema来创建Model呢，如下:
const UserModel = mongoose.model('User', UserSchema);
module.exports = UserModel;


// //两个参数表示定义一个模型
// var PersonModel = connection.model("Person", PersonSchema);
// // 如果该Model已经定义，则可以直接通过名字获取
// var PersonModel = connection.model('Person');//一个参数表示获取已定义的模型